﻿using System;
using System.Collections.Generic;
using System.Linq;
using Z16.BLI;
using System.Data;

namespace Z16.SITE
{
    public partial class addCadDemanda : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if ((Session["CodPerfil"] == null) || (Session["CodUsr"] == null))
                {
                    Response.Write("<script>window.location=\'Login.aspx';</script>");
                    return;
                }

                carregarProjeto();
                carregarStatus();
                carregarPrioridade();
                carregarSolicitante();

                var codDemanda = Request.QueryString["id"];
                if (codDemanda != null)
                {
                    this.CarregarDemanda(int.Parse(codDemanda.ToString()));
                    btnAtividades.Visible = true;
                }
            }
        }

        protected void CarregarDemanda(int codDemanda)
        {
            Demanda demanda = new Demanda();
            DataTable dt = demanda.ListarDemandas(codDemanda,null,null,null,null,null);

            List<DataRow> list = dt.AsEnumerable().ToList();

            var dem = list.First();

            txtDemanda.Text = dem[1].ToString();
            txtDescricao.Text = dem[2].ToString();
            txtDataIni.Text = dem[3].ToString();
            txtDataFim.Text = dem[4].ToString();    
            ddlProjeto.SelectedValue = dem[5].ToString();
            ddlStatus.SelectedValue = dem[6].ToString();
            ddlPrioridade.SelectedValue = dem[7].ToString();
            ddlUsuarioSolicitante.SelectedValue = dem[8].ToString();
        }

        private void carregarProjeto()
        {
            Demanda demanda = new Demanda();

            ddlProjeto.Items.Clear();
            ddlProjeto.AppendDataBoundItems = true;
            ddlProjeto.Items.Insert(0, "Selecione");

            ddlProjeto.DataSource = demanda.listarProjeto();
            ddlProjeto.DataValueField = "IntCodProjeto";
            ddlProjeto.DataTextField = "StrNomeProjeto";
            ddlProjeto.DataBind();
        }

        private void carregarStatus()
        {
            Demanda demanda = new Demanda();

            ddlStatus.Items.Clear();
            ddlStatus.AppendDataBoundItems = true;
            ddlStatus.Items.Insert(0, "Selecione");

            ddlStatus.DataSource = demanda.listarStatus();
            ddlStatus.DataValueField = "IntCodStatus";
            ddlStatus.DataTextField = "StrStatus";
            ddlStatus.DataBind();
        }

        private void carregarPrioridade()
        {
            Demanda demanda = new Demanda();

            ddlPrioridade.Items.Clear();
            ddlPrioridade.AppendDataBoundItems = true;
            ddlPrioridade.Items.Insert(0, "Selecione");

            ddlPrioridade.DataSource = demanda.listarPrioridade();
            ddlPrioridade.DataValueField = "IntCodPrioridade";
            ddlPrioridade.DataTextField = "StrNomePrioridade";
            ddlPrioridade.DataBind();
        }

        private void carregarSolicitante()
        {
            Demanda demanda = new Demanda();

            ddlUsuarioSolicitante.Items.Clear();
            ddlUsuarioSolicitante.AppendDataBoundItems = true;
            ddlUsuarioSolicitante.Items.Insert(0, "Selecione");

            ddlUsuarioSolicitante.DataSource = demanda.listarSolicitante();
            ddlUsuarioSolicitante.DataValueField = "CodSolici";
            ddlUsuarioSolicitante.DataTextField = "StrSolici";
            ddlUsuarioSolicitante.DataBind();
        }

        protected void btnGravar_Click(object sender, EventArgs e)
        {
            divSucess.Visible = false;
            divError.Visible = false;

            int? codDemanda = null;

            if (Request.QueryString["id"] != null)
                codDemanda = int.Parse(Request.QueryString["id"]);

            try
            {
                if (txtDemanda.Text != "")
                {
                    Demanda demanda = new Demanda();

                    var ret = demanda.incDemandas(txtDemanda.Text, txtDescricao.Text, DateTime.Parse(txtDataIni.Text), DateTime.Parse(txtDataFim.Text),
                                                    int.Parse(ddlUsuarioSolicitante.SelectedValue), 1, int.Parse(ddlPrioridade.SelectedValue),
                                                    int.Parse(ddlProjeto.SelectedValue), codDemanda);
                    var retorno = ret.Split(';');

                    this.ExibirMensagem(retorno[0], retorno[1]);
                }
                else
                {
                    divError.Visible = true;
                }
            }
            catch
            {
                divError.Visible = true;
            }
        }

        protected void btnAtividades_Click(object sender, EventArgs e)
        {

            int? codDemanda = null;

            if (Request.QueryString["id"] != null)
                codDemanda = int.Parse(Request.QueryString["id"]);

            Response.Redirect("ListarAtividade.aspx?idDemanda=" + codDemanda);
        }

        protected void ExibirMensagem(string erro, string mensagem)
        {
            if (erro.Equals("0"))
            {
                divSucess.Visible = true;
                lblMsg.Text = mensagem;
            }
            else
            {
                divError.Visible = true;
                lblErro.Text = mensagem;
            }
        }

    }
}